The present invention relates generally to computer systems, and more particularly to identifying and preventing malicious intrusions.
Computer attacks or intrusions are common today. Some examples are viruses, worms, buffer overflow attacks, malformed URL attacks, and brute force/denial or service attacks. Computer intrusions are typically received via a network intranet or Internet interface targeted at the operating system or an installed service. Computer firewalls can prevent some types of malicious intrusions, although they typically need a signature of the virus or worm or source IP address of the hacker to thwart the intrusion. Before the virus or worm and its signature are identified, the firewall cannot be configured to block it.
A computer virus is a computer program that is normally harmful in nature to a computer user. Computer viruses are received via several media, such as a computer diskette, e-mail or vulnerable program. Once a virus is received by a user, it remains “dormant” until it is executed by the user (or other program). A virus typically requires a user or program to execute the virus to spread the virus and infect others. When the computer virus is contained in an e-mail as an attachment, the e-mail and attachment are addressed to a specified destination (or target) IP address, and a specified destination (or target port) at the destination address. The destination port is typically associated with a communication protocol and application to handle the message.
A computer worm is a computer program similar to a computer virus, except that a computer worm does not require action by a person to become active. A computer worm exploits some vulnerability in a system to gain access to that system. Once the worm has infected a particular system, it replicates by executing itself. Normally, worms execute themselves and spawn a process that searches for other computers on nearby networks. If a vulnerable computer is found, the worm infects this computer and the cycle continues. When the computer worm is contained in an e-mail as an attachment, the e-mail and attachment are addressed to a specified destination (or target) IP address, and a specified destination (or target) port at the destination IP address. As noted above, the destination port is typically associated with a communication protocol and application to handle the message.
As noted above, some types of computer intrusions (including viruses and worms) have a characteristic signature by which the intrusion can be identified. The signature can take various forms depending on the nature of the virus or worm, but typically comprises several consecutive lines of plain text or executable code that are distinctive and appear in the virus or worm program. Once a signature is determined for a new computer virus or worm, intrusion detection or intrusion prevention software can be created and distributed to customers for inclusion in their firewalls. The intrusion detection or intrusion prevention software detects the virus or worm from a network interface card (NIC) or when the virus or worm attempts to pass through a firewall. The detection is by a “key word” search for the signature of the virus or worm. The intrusion prevention or intrusion detection software will then thwart the virus or worm by deleting it or preventing its execution by appropriate command to the operating system.
It is important to identify new computer intrusions (and their signatures), as soon as possible after the new intrusion is released. Then, its signatures can be identified and the intrusion prevention or intrusion detection software can be created and distributed to customers.
A hacker may also send “exploitation” code to the victim's server or workstation, which code automatically exploits vulnerabilities in a victim's server, as would a hacker do manually. For example, a buffer overflow attack exploitation program exploits a vulnerability, typically caused by programmer error, that allows for arbitrary code execution on the target system. As another example, an attacker can inject special machine code into a program variable (usually input by a user) to cause arbitrary code execution in a program. This special code, once given to the program to execute, is placed in the correct area of computer memory, such that the executing program is unaware of the malicious intent of the injected code. There are several classes of buffer overflow, including format string, remote and local. It is important to thwart exploitation code, as well as viruses and worm.
Intrusion Detection Systems (“IDSs”) are currently known and have a list of signatures of known or suspected viruses, worms and other common intrusions. The IDS may be logically located behind a firewall. The IDS searches each packet it receives for the signatures in its list, and thereby detects a virus, worm or other intrusion. When this occurs, the IDS notifies a security operations center (“SOC”), and the SOC will check that the proper anti-virus, anti-worm or other intrusion protection software is currently installed in the enterprise or customer network. While the IDS is effective in safeguarding an enterprise against confirmed certain viruses, worm and other intrusions which are known or suspected, improvements are need to identify malicious intrusions which have not yet been identified and for which their signatures are not yet identified.
Some types of source profiling are also known to identify new computer intrusions. For example, US Published Patent Application US 2002/0035698 A1 discloses receipt and analysis of network traffic destined for services to identify an undesirable use of the services. This published patent application also discloses identification of topologically anomalous application-level patterns of traffic and removal of these data flows in real-time from the network. The published patent application considers temporal parameters such as time of day, day of week, day of month and holidays when the traffic occurs.
US Published Patent Application US 2004/0117478 A1 discloses a system for analyzing network traffic to detect suspect packets and identify intrusions or potential threats. Data packets which meet defined criteria are detected and their details forwarded to a database server where the details are stored so as to be accessible for use in analysis in conjunction with the details of other detected packets. The objective of the published patent application is to allow users to detect hostile network activity and take action based both on real-time information and correlation with historical data. This published patent application performs historical analysis and correlation on the traffic, to build up profiles of both attackers. The published patent application also discloses that to detect some types of intrusions it is useful to have some state in a sniffer. Statefulness is important in detecting a large number of hanging connections in a denial of service attack against a specific machine. Another area where statefulness is useful is to detect sudden peaks in the number of packets directed at specific hosts or specific ports. An alert is raised when changes in traffic patterns are detected even if the individual packets seem harmless, and are not logged to the database.
An object of the present invention is to identify new computer viruses, worms and other unwanted intrusions.